//package com.urfresh.sp.flume.receive.configure;
//
//import com.urfresh.sp.config.ImplantDatabaseConfig;
//import com.urfresh.sp.config.LogDatabaseConfig;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Import;
//import org.springframework.context.annotation.Primary;
//
//import javax.sql.DataSource;
//
//@Configuration
//@Import({ImplantDatabaseConfig.class})
//public class DataSourceImplantConfig {
//
//    @Value("${com.urfresh.datasource.url.import}")
//    String urlImport;
//
//    @Value("${com.urfresh.datasource.username}")
//    String username;
//
//    @Value("${com.urfresh.datasource.password}")
//    String password;
//
////    @Primary
////    如果没有加destroy-method ，而且重启次数太频繁，造成重启tomcat 旧的数据库连接池的连接不释放，这样会有好多数据库连接占着一段时间不释放；所以最好加上destroy-method。
//    @Bean(name = "dataSourceImpl", destroyMethod = "close")
//    public DataSource dataSource() {
//        org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
//        ds.setDriverClassName("com.mysql.jdbc.Driver");
//        ds.setUrl(urlImport);
//        ds.setUsername(username);
//        ds.setPassword(password);
//        ds.setInitialSize(80);
//        ds.setMaxActive(80);
//        ds.setMaxIdle(80);
//        ds.setMinIdle(80);
//        ds.setDefaultAutoCommit(false);
//        ds.setMaxWait(2000);
////        移除无引用连接（那些没有close的连接）此处设置为false，需要保证程序中连接一定释放
//        ds.setRemoveAbandoned(false);
//        ds.setRemoveAbandonedTimeout(300000);
////        如果是mysql库，可能存在8小时问题，可以考虑开启过期定时器(numTestsPerEvictionRun=1)，定期过期一下连接，timeBetweenEvictionRunsMillis时间可以设置在8小时左右.
//        ds.setTimeBetweenEvictionRunsMillis(480000);
//        ds.setNumTestsPerEvictionRun(1);
////        ds.setTestOnBorrow(true);
////        ds.setTestOnReturn(false);
////        ds.setTestWhileIdle(false);
//        ds.setValidationQuery("select 1");
//		ds.setValidationInterval(60000);
//        ds.setValidationQueryTimeout(3);
////        一个连接空闲多久从池中移除，-1不做判断
//        ds.setMinEvictableIdleTimeMillis(10000);
//
////        org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
////        ds.setDriverClassName("com.mysql.jdbc.Driver");
////        ds.setUrl(urlImport);
////        ds.setUsername(username);
////        ds.setPassword(password);
////        ds.setInitialSize(1);
////        ds.setMaxActive(60);
////        ds.setMaxIdle(30);
////        ds.setMinIdle(15);
////        ds.setDefaultAutoCommit(false);
////        ds.setMaxWait(5000);
////        ds.setRemoveAbandoned(true);
////        ds.setRemoveAbandonedTimeout(60);
////        ds.setTimeBetweenEvictionRunsMillis(150000);
////        ds.setTestOnBorrow(true);
////        ds.setTestOnReturn(false);
////        ds.setTestWhileIdle(true);
////        ds.setValidationQuery("select 1");
////        ds.setValidationInterval(60000);
////        ds.setValidationQueryTimeout(3);
////        ds.setMinEvictableIdleTimeMillis(900000);
//
//		ds.setJdbcInterceptors(
//				"org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
//        return ds;
//    }
////
////    @Bean(destroyMethod = "close", name = "dataSourceLog")
////    public DataSource dataSource2() {
////        org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
////        ds.setDriverClassName("com.mysql.jdbc.Driver");
////        ds.setUrl(urlImport);
////        ds.setUsername(username);
////        ds.setPassword(password);
////        ds.setInitialSize(1);
////        ds.setMaxActive(60);
////        ds.setMaxIdle(30);
////        ds.setMinIdle(15);
////        ds.setDefaultAutoCommit(false);
////        ds.setMaxWait(5000);
////        ds.setRemoveAbandoned(true);
////        ds.setRemoveAbandonedTimeout(60);
////        ds.setTimeBetweenEvictionRunsMillis(150000);
////        ds.setTestOnBorrow(true);
////        ds.setTestOnReturn(false);
////        ds.setTestWhileIdle(true);
////        ds.setValidationQuery("select 1");
////        ds.setValidationInterval(60000);
////        ds.setValidationQueryTimeout(3);
////        ds.setMinEvictableIdleTimeMillis(900000);
////
////        ds.setJdbcInterceptors(
////                "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer");
////        return ds;
////    }
//
//}
